import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;


@WebServlet("/login")
public class LoginServlet extends HelloServlet{
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.获取到用户的用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        if (username == null || password == null || username.equals("") || password.equals("")) {
            //确定引用本身非空,内容非空
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("请求的参数不完整!");
            return;
        }

        //2.验证用户名密码是否正确.
        //正确的验证,是从数据库读取数据.
        //注册账号,就会给数据库插入用户名和密码.
        //登陆的时候,就是验证当前用户名是否存在,密码是否匹配.
        //当前为了简单,先不引入数据库,直接通过硬编码的方式来判定用户密码
        //此处约定,合法的用户名是zhangshan,密码123
        if (!username.equals("zhangshan")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户名错误!");
            return;
        }
        if (!password.equals("123")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("密码错误!");
            return;
        }

        //3.登陆成功!!
        //此时就可以给用户创建会话
        HttpSession session = req.getSession(true);
        //在会话中,可以顺便保存点自定义的数据,比如保存一个登陆的时间戳.
        //setAttribute后面的value是个Object,想存什么都可以.
        session.setAttribute("username",username);
        session.setAttribute("time",System.currentTimeMillis());

        //4.让页面自动跳转到网站主页.
        //此处约定主页的路径是index(也使用Servlet生成一个动态页面)
        resp.sendRedirect("index");
    }
}
